import request from '../utils/api';

/**
 * 价格管理服务类
 * 封装与价格管理相关的API请求
 */
class PriceService {
  /**
   * 获取价格策略列表
   * @param page 页码
   * @param pageSize 每页数量
   * @param keyword 搜索关键词
   * @returns 价格策略列表数据
   */
  async getPriceList(page: number = 1, pageSize: number = 10, keyword: string = '') {
    try {
      return await request.get('price/pageList', { page, pageSize, keyword });
    } catch (error) {
      console.error('获取价格策略列表失败:', error);
      throw error;
    }
  }

  /**
   * 获取价格策略详情
   * @param id 策略ID
   * @returns 价格策略详情数据
   */
  async getPriceDetail(id: number) {
    try {
      return await request.get(`/price/${id}`);
    } catch (error) {
      console.error('获取价格策略详情失败:', error);
      throw error;
    }
  }

  /**
   * 创建价格策略
   * @param priceData 价格策略数据
   * @returns 创建后的价格策略数据
   */
  async createPrice(priceData: any) {
    try {
      return await request.post('price/save', priceData);
    } catch (error) {
      console.error('创建价格策略失败:', error);
      throw error;
    }
  }

  /**
   * 更新价格策略
   * @param id 策略ID
   * @param priceData 价格策略数据
   * @returns 更新后的价格策略数据
   */
  async updatePrice(id: number, priceData: any) {
    try {
      return await request.put(`/price/${id}`, priceData);
    } catch (error) {
      console.error('更新价格策略失败:', error);
      throw error;
    }
  }

  /**
   * 删除价格策略
   * @param id 策略ID
   * @returns 删除结果
   */
  async deletePrice(id: number) {
    try {
      return await request.delete(`/price/${id}`);
    } catch (error) {
      console.error('删除价格策略失败:', error);
      throw error;
    }
  }

  /**
   * 获取费用构成分析数据
   * @param params 查询参数
   * @returns 费用构成分析数据
   */
  async getCostAnalysis(params: any = {}) {
    try {
      return await request.get('price/costAnalysis', { params });
    } catch (error) {
      console.error('获取费用构成分析数据失败:', error);
      throw error;
    }
  }
}

export default new PriceService();